"""运行量化分析的独立脚本.

该脚本直接调用 QuantAnalyzer 的 main 函数，避免循环导入问题。
"""

import sys
import logging

# 配置日志输出
logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
)

# 使用 importlib 延迟导入，避免循环导入问题
import importlib.util

# 加载 quant_analyzer 模块
spec = importlib.util.spec_from_file_location(
    "quant_analyzer",
    "src/quant/quant_analyzer.py"
)
quant_analyzer_module = importlib.util.module_from_spec(spec)

# 执行模块（这会触发导入，但我们已经配置了日志）
try:
    spec.loader.exec_module(quant_analyzer_module)
except Exception as e:
    print(f"导入模块时出错: {e}")
    print("尝试使用标准导入方式...")
    
    # 如果延迟导入失败，尝试标准导入
    from src.quant.quant_analyzer import main
    
    # 从命令行参数获取 ETF 代码
    symbol = sys.argv[1] if len(sys.argv) > 1 else None
    
    # 执行 main 函数
    main(symbol)
else:
    # 如果延迟导入成功，调用 main 函数
    main_func = getattr(quant_analyzer_module, "main", None)
    if main_func:
        # 从命令行参数获取 ETF 代码
        symbol = sys.argv[1] if len(sys.argv) > 1 else None
        main_func(symbol)
    else:
        print("错误: 无法找到 main 函数")
        sys.exit(1)

